#!/bin/bash
 
#设置地理位置
gro="贵州"
# 获取当前时间戳
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
 
# 使用top命令获取CPU占用率（用户空间和内核空间的总和），并提取相关信息
# 注意：这种方法可能不是最精确的，但它是一个简单且常用的方法
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1}')
 
# 将时间戳和CPU占用率记录到input.txt文件中
echo "$TIMESTAMP CPU Usage: $CPU_USAGE%" >> /home/input.txt

# DingTalk Webhook 地址
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=a344c6302de67c39cec1dcaaf9d9c2d08d4811df0cd6e750e1ad14577326ad18"
str_to_num=3

#整数
integer=$(echo "$CPU_USAGE / 1" | bc) 

#告警级别
alarm_level="轻微"

if [ $integer -lt 10 ]; then
    alarm_level="轻微"
elif [ $integer -ge 10 ] && [ $integer -lt 30 ]; then
    alarm_level="稍微严重"
elif [ $integer -ge 30 ] && [ $integer -lt 50 ]; then
    alarm_level="严重"
elif [ $integer -ge 50 ]; then
    alarm_level="特别严重"
fi	

newStatus=50
# 如果cpu超过50%，就往钉钉的webhook里面发数据
if [ $integer -ge  $newStatus ]
then
	escaped_text="{
     \"msgtype\": \"markdown\",
     \"markdown\": {
        \"title\":\"**服务器报警**\",
         \"text\": \"**服务器报警**  \\n>**CPU-报警：$CPU_USAGE%**\\n>\
     \
            *服务器地理位置：$gro*\\n>   \
     ![screenshot](https://imgtw.oss-cn-chengdu.aliyuncs.com/error.png)\\n>\
     **$TIMESTAMP发布**      **[$alarm_level]()** \\n\"
     },
      \"at\": {
          \"atMobiles\": [
              \"15583162269\"
          ],
          \"isAtAll\": false
      }}"
    curl -s -o /dev/null -H "Content-Type: application/json" -d "$escaped_text" "$WEBHOOK_URL"
    #echo "success"
    echo "$TIMESTAMP sengMsg success!" >> /home/msg_status.txt
fi


